<html>
<head><meta charset="utf-8"><title>Focusing the direction of RFC#2919 experimental_keywords · t-lang · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/index.html">t-lang</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html">Focusing the direction of RFC#2919 experimental_keywords</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="195924937"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/195924937" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scottmcm <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#195924937">(May 01 2020 at 02:08)</a>:</h4>
<p>I think right now this is straddling a line between two things, and it would be better if we decided specifically which we wanted:</p>
<ol>
<li>The complement to <code>r#ident</code>, where when we reserve-and-stabilize <code>yeet</code> in Rust 1337, you can use that feature via <code>r#$yeet</code> on any(*) edition, for which most of the questions are about a tolerable syntax.</li>
<li>An exploratory option for having some things on stable that in some ways "aren't done yet", for which most of the questions are about stability guarantees.</li>
</ol>
<p>But I don't think that conversation would go well on github, so I wanted to start a topic here.</p>



<a name="195924943"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/195924943" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scottmcm <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#195924943">(May 01 2020 at 02:08)</a>:</h4>
<p>cc <span class="user-mention" data-user-id="224471">@Lokathor</span> of course</p>



<a name="195925125"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/195925125" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#195925125">(May 01 2020 at 02:12)</a>:</h4>
<p>I have spoken to approximately one additional person about the RFC outside of the people who were at today's meeting and spoke on zulip and they were, I would describe it as "violently positive" about the idea of being able to get features into usage without worrying about syntax details.</p>



<a name="195925146"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/195925146" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#195925146">(May 01 2020 at 02:13)</a>:</h4>
<p>I would agree with them and say that "get features into usage earlier" is my main vote, and then "use new stuff even in previous editions in some ugly way" is just an accidental side benefit.</p>



<a name="195925905"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/195925905" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scottmcm <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#195925905">(May 01 2020 at 02:27)</a>:</h4>
<p>The thing I worry about is that syntax choices being hard is a lang team process social problem, and needn't actually be the long pole for most things.  Getting the semantics into a form that we're willing to commit to <em>forever</em> is, in many ways, far scarier to me.  For example, <code>r#$default</code> doesn't solve any of the problems that currently exist with specialization, and it would be easy for us to have stabilized <code>r#$catch</code> <a href="https://github.com/rust-lang/rust/issues/41414" title="https://github.com/rust-lang/rust/issues/41414">without success-wrapping back in 2017</a>, and it would have been rather suboptimal to be stuck with that forever <a href="https://github.com/rust-lang/rust/issues/70941" title="https://github.com/rust-lang/rust/issues/70941">when the team now thinks that's wrong</a>.</p>



<a name="195926003"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/195926003" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scottmcm <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#195926003">(May 01 2020 at 02:29)</a>:</h4>
<p>So it's not obvious to me that allowing not-done things on stable is any better of an idea now than it was when the decision was made way back when that feature flags are nightly-only.</p>



<a name="195926078"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/195926078" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#195926078">(May 01 2020 at 02:30)</a>:</h4>
<p>(well gosh, now he tells me :P )<br>
But yeah, that's why I tried to be clear that stabilizing a feature via experimental keyword is _possible_ on a case by case basis.</p>
<p>Heck, plenty of people don't even want the syntax arguments to hold up things getting into nightly.</p>



<a name="195926215"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/195926215" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scottmcm <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#195926215">(May 01 2020 at 02:33)</a>:</h4>
<p>Hmm, that response makes me notice that I did a bad job in the OP for this topic, I think.  I'm totally good with <code>(1)</code> also being "and this is used in nightly for placeholder keywords that aren't yet stable keywords in any edition, and may never be stable", or a 3rd option that also hits that kind of hybrid.</p>



<a name="195926242"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/195926242" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scottmcm <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#195926242">(May 01 2020 at 02:34)</a>:</h4>
<p>(As a less-hacky option than <code>do catch</code> and friends)</p>



<a name="195926466"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/195926466" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scottmcm <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#195926466">(May 01 2020 at 02:38)</a>:</h4>
<p>It's clearly true that syntax discussions are currently _painful_.  But having non-final syntax doesn't get us out of those holes; we still need to find a way to have them to decide the final syntax without burning out valuable team members.  And as burnout-enducing as await was, it was nowhere close to the long pole in the work to stabilize the feature, near as I could tell.</p>



<a name="195926491"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/195926491" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scottmcm <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#195926491">(May 01 2020 at 02:39)</a>:</h4>
<p>I wholeheartedly agree with not letting syntax arguments block getting things in nightly.</p>



<a name="195927042"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/195927042" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#195927042">(May 01 2020 at 02:52)</a>:</h4>
<p>It's also worth mentioning that if we had stabilized <code>r#$catch</code> without Ok-wrapping, we could have put surface syntax over that with Ok-wrapping.</p>



<a name="195927229"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/195927229" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scottmcm <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#195927229">(May 01 2020 at 02:57)</a>:</h4>
<p>I agree; there's nothing that would have stopped us from <em>also</em> having <code>r#$try</code> that does have it.</p>
<p>It just seems sad to have both versions stable forever.</p>



<a name="195927297"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/195927297" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scottmcm <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#195927297">(May 01 2020 at 02:58)</a>:</h4>
<p>(Or really surprising if <code>r#$try</code> doesn't ok-wrap but <code>try</code> does.)</p>



<a name="195928379"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/195928379" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#195928379">(May 01 2020 at 03:22)</a>:</h4>
<p>Yeah, not going to argue with that.</p>



<a name="195944225"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/195944225" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#195944225">(May 01 2020 at 09:26)</a>:</h4>
<p>I left the meeting on the fence. I really like the idea of trying to change our process so that we can separate out the idea of syntax, but I'd like to talk throw in more detail some examples of how we expect it to play out.</p>



<a name="195944243"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/195944243" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#195944243">(May 01 2020 at 09:27)</a>:</h4>
<p>I mentioned that Ember has a similar process -- I want to verify that =) and maybe share some details from how it works there.</p>



<a name="195944320"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/195944320" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#195944320">(May 01 2020 at 09:28)</a>:</h4>
<p>I think maybe I was wrong to try and link this with <code>&amp;raw</code>, in the sense  that this discussion is perhaps bound to be longer and more thoughtful, and we might want to move on <code>&amp;raw</code> faster and just consider the possibility that this syntax will get deprecated.</p>



<a name="195944364"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/195944364" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#195944364">(May 01 2020 at 09:29)</a>:</h4>
<p>Or at least I think we shuldn't "deploy" a "preview keyword" without some guidance and sense of what we expect the surface syntax to ultimately look like.</p>



<a name="195944376"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/195944376" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#195944376">(May 01 2020 at 09:29)</a>:</h4>
<p>I think btw that <code>preview::raw_borrow</code> captures better the spirit than <code>experiment::raw_borrow</code> =)</p>



<a name="195946560"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/195946560" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#195946560">(May 01 2020 at 10:00)</a>:</h4>
<p><span class="user-mention" data-user-id="125270">@scottmcm</span> seems to me like with <code>try</code>, there were still open question about <em>semantics</em> even back then, so it basically would not have been eligible for this process</p>



<a name="195946573"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/195946573" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#195946573">(May 01 2020 at 10:00)</a>:</h4>
<p>in contrast, with <code>&amp;raw</code> pretty much the only open question is syntax. that's what this new process is for.</p>



<a name="195946584"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/195946584" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#195946584">(May 01 2020 at 10:01)</a>:</h4>
<p>but maybe that's just not common enough to warrant a process?</p>



<a name="195982354"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/195982354" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#195982354">(May 01 2020 at 16:58)</a>:</h4>
<p>I expect it to be common.</p>



<a name="195982391"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/195982391" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#195982391">(May 01 2020 at 16:59)</a>:</h4>
<p>The "return an error" keyword is in the same boat.</p>



<a name="195982484"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/195982484" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#195982484">(May 01 2020 at 16:59)</a>:</h4>
<p>(or, it will be, as soon as we finish working on the Try trait)</p>



<a name="195989360"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/195989360" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scottmcm <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#195989360">(May 01 2020 at 17:55)</a>:</h4>
<p>To me, "return an error" is the "we picked something and want a way to use it before an edition lets us reserve it", though.</p>
<p>Anything we can do takes 6-12 weeks to get to stable.  If we really wanted to, as lang we could just make a decision in a few weeks and be <em>done</em>.  Then we say "look, it's <code>fhqwhgads error;</code>", and that's it.  To me, if all the hard parts about <code>Try</code> are done -- which I suspect will be more than a few weeks to prove out -- and we're <em>de facto</em> stabilizing it, we should just stabilize it <em>de jure</em>.</p>
<p>I think that if lang can't make a decision on something that, while not unimportant, <strong>is</strong> just a bikeshed in 6 weeks, we should fix the lang process, not add a new kinda-not-stable-but-still-stable feature channel.  We have things where we're deadlocked on much harder questions about whether something is needed, but keyword choices really doesn't feel like one of those fundamental conflicts.</p>
<p>(Unless there's some material facts of which I'm unaware that have changed since the decision was made that experimentation happens in nightly.  And none of what I say here is meant to imply that we couldn't have both <code>r#$yeet</code> and <code>r#$fhqwhgads</code> on nightly for people to try both, if people decided that would be valuable.)</p>



<a name="196042584"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Focusing%20the%20direction%20of%20RFC%232919%20experimental_keywords/near/196042584" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Focusing.20the.20direction.20of.20RFC.232919.20experimental_keywords.html#196042584">(May 02 2020 at 09:21)</a>:</h4>
<p>dunno, I feel like picking good syntax is actually genuinely hard, so I dont think "it took us 3 months to find good syntax" is necessarily a process failure</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>